define(['jquery','bootstrap', 'backend', 'table', 'form','upyun','summernote', 'jstree'], function ($, undefined, Backend, Table, Form,UpYun,Summernote, undefined) {
		//读取选中的条目
		$.jstree.core.prototype.get_all_checked = function (full) {
				var obj = this.get_selected(), i, j;
				for (i = 0, j = obj.length; i < j; i++) {
						obj = obj.concat(this.get_node(obj[i]).parents);
				}
				obj = $.grep(obj, function (v, i, a) {
						return v != '#';
				});
				obj = obj.filter(function (itm, i, a) {
						return i == a.indexOf(itm);
				});
				return full ? $.map(obj, $.proxy(function (i) {
						return this.get_node(i);
				}, this)) : obj;
		};
		var Controller = {
				index: function () {
						var table = $("#table");
						$(document).on('click', '.thisaddtabs', function (e) {
								Backend.api.addtabs(Backend.api.replaceids(this, $(this).attr('url')), $(this).attr("title"));
								return false;
						});
						$(document).on('click','.btn-import',function(e){
								require(['upload'], function (Upload) {
										Upload.api.plupload($(".btn-import", "#toolbar"), function (data, ret) {
												$.ajax({
														type: "post",
														url: "/admin/member/membergroup/import.html",
														data: {file: data.url},
														dataType: 'JSON',
														success: function (datak) {
																location.reload();
														},
														error: function () {
																alert('编辑失败');
														},
														complete: function () {
														}
												});
										});
								});
						});
				$(document).on('click', '#chkSelectAll', function (e) {
						$(this).prop("checked","checked");
						$("#table input[name=btSelectItem]").each(function(){
								$(this).prop("checked",!$(this).prop("checked"));
						});
						return false;
				});
				$(document).on('click', 'input[name=btSelectItem]',function (e) {
						if($("input[name=btSelectItem]:checked").length>0){
								$(".btn-edit").removeClass('disabled');
								if(typeof($(".btn-more"))!='undefined'){
										$(".btn-more").removeClass('disabled');
								}
								}else{
										$(".btn-edit").addClass('disabled');
										if(typeof($(".btn-more"))!='undefined'){
												$(".btn-more").addClass('disabled');
										}
								}
						});
				$(document).on('click','.cheng_showlist input[type=checkbox]',function(e){
						$.ajax({
								type: "post",
								url: "/admin/member/membergroup/showlist.html",
								data: {ids:$(this).val(),ischeck:$(this).prop('checked')},
								dataType: 'JSON',
								success: function (data, status) {
								},
								error: function () {
										alert('编辑失败');
								},
								complete: function () {}
						});
				});
				$(".btn-edit").on("click",function(e){
						e.preventDefault();
						var chenked = $("input[name='btSelectItem']:checked");
						Backend.api.addtabs(Backend.api.replaceids(this, 'member/membergroup/edit?ids='+chenked[0].value),'编辑');
						return false;
				});
				$(".btn-del").on("click",function (e) {
						e.preventDefault();
						var chenked = $("input[name='btSelectItem']:checked");
						var ids = "";
						for(var i=0;i<chenked.length;i++){
								ids += chenked[i].value+",";
						}
						if(chenked.length==0){
								var index2 = Layer.confirm('请选择字段','请选择');
						}else{
								var id = $(this).data("id");
								var that = this;
								var index = Layer.confirm(
										__('Are you sure you want to delete this item?'),
										{icon: 3, title: __('Warning'), shadeClose: true},
										function () {
												$.ajax({
														type: "post",
														url: "/admin/member/membergroup/del.html",
														data: {ids:ids},
														dataType: 'JSON',
														success: function (data, status) {
																if (status == "success") {
																		Layer.close(index);
																		location.reload();
																}
														},
														error: function () {
																		alert('编辑失败');
														},
														complete: function () {}
												});
										}
								);
						}
				});
				$(".btn-delone").on("click",function(e){
						var ids = $(this).prop("title");
						var index = Layer.confirm(
								__('Are you sure you want to delete this item?'),
								{icon: 3, title: __('Warning'), shadeClose: true},
								function () {
										$.ajax({
												type: "post",
												url: "/admin/member/membergroup/del.html",
												data: {ids:ids},
												dataType: 'JSON',
												success: function (data, status) {
														if (status == "success") {
																Layer.close(index);location.reload();
														}
												},
												error: function () {
														alert('编辑失败');
												},
												complete: function () {}
										});
								}
						);
				});
				$('div.keep-open ul li[role="menuitem"] input[type="checkbox"]').on('change', function(e){
								var cn = $(this).attr("data-field");
								var cnc = Fast.api.ucfirst(cn);
								if($(this).is(':checked')){
											if($("#table thead").is(":hidden")){
													addColumnMobile(cn);
											}else{
													addColumnPc(cn);
											}
								}else{
											if($("#table thead").is(":hidden")){
													$("#datalist .card-view[columnname="+cn+"]").remove();
													$("#table thead tr th[data-field='"+cn+"']").remove();
											}else{
													//隐藏那个列
													$("#datalist tr td[columnname="+cnc+"]").remove();
													$("#table thead tr th[data-field='"+cn+"']").remove();
											}
								}
				});
				//表格切换
				$("#toggleview").on('click', function (e) {
						if($("#table thead").is(":hidden")){
								//转换table视图
								$("#table thead").show();
								var ss = '';
								$("#datalist tr").each(function(i){
										var obj = $(this);
										ss += '<tr data-index="'+i+'">';
										$.each(eval(pagedata.columns),function(k,v){
												if(v.isshowlist==1){
														switch(k.toLowerCase()){
																case 'itemid':
																		ss += '<td class="bs-checkbox" columnname="'+v.columnenname+'">';
																		ss += '<input data-index="'+i+'" name="btSelectItem" type="checkbox" value="'+obj.find("div.card-view [columnname='"+k.toLowerCase()+"'] input[type='checkbox']").val()+'" />';
																break;
																default:
																		var s4 = obj.find("div.card-view[columnname='"+v.columnenname+"'] span.value").html();
																				if(typeof(s4)!='undefined'){
																						ss += '<td columnname="'+k+'">';
																						ss += s4;
																				}
																		}
																ss += '</td>';
														}
												});
												ss += '<td columnname="caozuo">';
														ss += obj.find("div.card-view[columnname='caozuo'] span.value").html();
												ss += '</td>';
										ss += '</tr>';
								});
								$("#datalist").html(ss);
						}else{
				//转换cardview视图
				$("#table thead").hide();
				var ss = '';
				$("#datalist tr").each(function(i){
						var obj = $(this);
						ss += '<tr data-index="0">';
						ss += '<td>';
						ss += '<div class="card-views">';
						$.each(eval(pagedata.columns),function(k,v){
								if(v.isshowlist==1){
										ss += '<div class="card-view" columnname="'+v.columnenname+'">';
										switch(k.toLowerCase()){
												case 'itemid':
														ss += '<input data-index="'+i+'" name="btSelectItem" type="checkbox" value="'+obj.find("td[columnname='"+k.toLowerCase()+"'] input[type='checkbox']").val()+'" />';
												break;
												default:
														var s4 = obj.find("td[columnname='"+k+"']").html();
														if(typeof(s4)!='undefined'){
																ss += '<span class="title">'+v.columnname+'</span><span class="value">'+s4+'</span>';
														}
										}
										ss += '</div>';
								}
						});
						ss += '<div class="card-view" columnname="caozuo">';
								ss += '<span class="title" style="text-align: center; vertical-align: middle; ">操作</span>';
								ss += '<span class="value">'+obj.find("td[columnname='caozuo']").html()+'</span>';
						ss += '</div>';
					ss += '</div>';
					ss += '</td>';
					ss += '</tr>';
				});
				$("#datalist").html(ss);
				}
		});
										if($(window).width()<768){
										$("#toggleview").trigger('click');
										}
										$(window).resize(function(){
										if($(window).width()<=768){
										if(!$("#table thead").is(":hidden")){
												$("#toggleview").trigger('click');
										}
										}
										if($(window).width()>768){
										if($("#table thead").is(":hidden")){
												$("#toggleview").trigger('click');
										}
										}
								});
								Controller.api.bindevent();
						},
						add: function () {
								Controller.api.bindevent();
						},
						edit: function () {
								$(".returnback").click(function(){
										history.back();
								});
								Controller.api.bindevent();
						},
						api: {
								bindevent: function () {
										//Form.api.bindevent($("form[role=form]"));
										//Form.api.bindevent($("form.form-commonsearch"));
										//Form.api.bindevent($("form[role=form]"));
			              Form.api.bindevent($("form[role=form]"), null, null, function () {
			                    if ($("#treeview").size() > 0) {
			                        var r = $("#treeview").jstree("get_all_checked");
			                        $("input[name='row[rules]']").val(r.join(','));
			                    }
			                    return true;
			                });
			                //渲染权限节点树
			                  //变更级别后需要重建节点树
			                  //$(document).on("change", "select[name='row[pid]']", function () {
			                      var pid = '';//$(this).data("pid")
			                      var id = $("#treeview").attr('rid');//$(this).data("id");
			                      // if ($(this).val() == id) {
			                      //     $("option[value='" + pid + "']", this).prop("selected", true).change();
			                      //     Backend.api.toastr.error(__('Can not change the parent to self'));
			                      //     return false;
			                      // }
														
			                      $.ajax({
			                          url: "member/membergroup/roletree",
			                          type: 'post',
			                          dataType: 'json',
			                          data: {id: id, pid: ''},
			                          success: function (ret) {
			                              if (ret.hasOwnProperty("code")) {
			                                  var data = ret.hasOwnProperty("data") && ret.data != "" ? ret.data : "";

			                                  if (ret.code === 1) {
			                                      //销毁已有的节点树
			                                      $("#treeview").jstree("destroy");
			                                      Controller.api.rendertree(data);
			                                  } else {
			                                      Backend.api.toastr.error(ret.data);
			                                  }
			                              }
			                          }, error: function (e) {
			                              Backend.api.toastr.error(e.message);
			                          }
			                      });
			                  //});
			                  //全选和展开
			                  $(document).on("click", "#checkall", function () {
			                      $("#treeview").jstree($(this).prop("checked") ? "check_all" : "uncheck_all");
			                  });
			                  $(document).on("click", "#expandall", function () {
			                      $("#treeview").jstree($(this).prop("checked") ? "open_all" : "close_all");
			                  });
			                  //$("select[name='row[pid]']").trigger("change");

								},
			          rendertree: function (content) {

			                $("#treeview")
			                        .on('redraw.jstree', function (e) {
			                            $(".layer-footer").attr("domrefresh", Math.random());
			                        })
			                        .jstree({
			                            "themes": {"stripes": true},
			                            "checkbox": {
			                                "keep_selected_style": false,
			                            },
			                            "types": {
			                                "root": {
			                                    "icon": "fa fa-folder-open",
			                                },
			                                "menu": {
			                                    "icon": "fa fa-folder-open",
			                                },
			                                "file": {
			                                    "icon": "fa fa-file-o",
			                                }
			                            },
			                            "plugins": ["checkbox", "types"],
			                            "core": {
			                                'check_callback': true,
			                                "data": content
			                            }
			                        });
			          }
						}
				};
				return Controller;
		});
function creatList(obj, list){
		$.each(eval(obj), function(i,item) {
				var temp = new Object();
				temp.text = item.name;
				temp.value = item.id;
				list.push(temp);
		});
}
//补足表格的列(PC)
function addColumnPc(key){
		var l = 10000;//初始化顺序
		var columnenname = '';var columnname = '';
		$.each(eval(pagedata.columns),function(k,v){
				var temp = new Object();
				if(k.toLowerCase()==key){
						columnenname = v.columnenname;
						columnname = v.columnname;
						l = v.listorder;
				}
				if((v.listorder>l)&&(v.isshowlist==1)){
						var html = "";
						$("#table thead").find("tr th[data-field='"+v.columnenname+"']").before('<th data-field="'+columnenname+'"><div class="th-inner">'+columnname+'</div><div class="fht-cell"></div></th>');
						var list = eval(pagedata.list);
						var cv = '';
						var lst = $("#table tbody tr").find("td[columnname="+Fast.api.ucfirst(v.columnenname)+"]");
						//把单元格的列加上
						lst.each(function(i){
								$(this).before('<td columnname="'+Fast.api.ucfirst(columnenname)+'">'+list[i][columnenname.toLowerCase()]+'</td>');
						});
						return false;
				}
		});
}
//补足表格的列(Mobile)
function addColumnMobile(key){
		var l = 10000;//初始化顺序
		var columnenname = '';var columnname = '';
		$.each(eval(pagedata.columns),function(k,v){
				var temp = new Object();
				if(k.toLowerCase()==key){
						columnenname = v.columnenname;
						columnname = v.columnname;
						l = v.listorder;
				}
				if((v.listorder>l)&&(v.isshowlist==1)){
						var html = "";
						var list = eval(pagedata.list);
						var cv = '';
						var lst = $("#datalist tr td").find("div[columnname="+v.columnenname+"]");
						//把单元格的列加上
						lst.each(function(i){
								$(this).before('<div class="card-view" columnname="'+columnenname.toLowerCase()+'"><span class="title">'+columnname+'</span><span class="value">'+list[i][columnenname.toLowerCase()]+'</span></div>');
						});return false;
				}
		});
		return false;
}
